/**
 * 语言枚举
 */
const LanguageEnum = {
  ZH_CN: 'zh-cn', // 中文简体
  ZH_TW: 'zh-tw', // 中文繁体
  EN: 'en', // 英语
  JA: 'ja', // 日语
  KO: 'ko', // 韩语
  ID: 'id', // 印尼语
  TH: 'th', // 泰语
  VI: 'vi', // 越南语
  RU: 'ru', // 俄语
  DE: 'de', // 德语
  ES: 'es', // 西班牙语
  FR: 'fr', // 法语
  IT: 'it', // 意大利语
  PT: 'pt', // 葡萄牙语
  ALL: [
    {
      label: '中文',
      value: 'zh-cn',
    },
    {
      label: '繁體中文',
      value: 'zh-tw',
    },
    {
      label: 'English',
      value: 'en',
    },
    {
      label: '日本语',
      value: 'ja',
    },
    {
      label: '한국어',
      value: 'ko',
    },
    {
      label: 'Bahasa Indonesia',
      value: 'id',
    },
    {
      label: 'ภาษาไทย',
      value: 'th',
    },
    {
      label: 'Tiếng Việt',
      value: 'vi',
    },
    {
      label: 'Русский',
      value: 'ru',
    },
    {
      label: 'Deutsch',
      value: 'de',
    },
    {
      label: 'Español',
      value: 'es',
    },
    {
      label: 'Français',
      value: 'fr',
    },
    {
      label: 'Italiano',
      value: 'it',
    },
    {
      label: 'Português',
      value: 'pt',
    },
  ],
};

/**
 * 设备枚举
 */
const DeviceEnum = {
  /**
   * 宽屏设备
   */
  DESKTOP: 'desktop',

  /**
   * 窄屏设备
   */
  MOBILE: 'mobile',
};

/**
 * 菜单布局枚举
 */
const LayoutEnum = {
  /**
   * 左侧菜单布局
   */
  LEFT: 'left',
  /**
   * 顶部菜单布局
   */
  TOP: 'top',

  /**
   * 混合菜单布局
   */
  MIX: 'mix',
};

/**
 * 菜单类型枚举
 */
const MenuTypeEnum = {
  /**
   * 菜单
   */
  MENU: 1,
  /**
   * 目录
   */
  CATALOG: 2,
  /**
   * 外链
   */
  EXTLINK: 3,
  /**
   * IFRAME
   */
  IFRAME: 4,
};

/**
 * 查询类型枚举
 */
const QueryTypeEnum = {
  /** 等于 */
  EQ: { value: 1, label: '=' },

  /** 模糊匹配 */
  LIKE: { value: 2, label: "LIKE '%s%'" },

  /** 包含 */
  IN: { value: 3, label: 'IN' },

  /** 范围 */
  BETWEEN: { value: 4, label: 'BETWEEN' },

  /** 大于 */
  GT: { value: 5, label: '>' },

  /** 大于等于 */
  GE: { value: 6, label: '>=' },

  /** 小于 */
  LT: { value: 7, label: '<' },

  /** 小于等于 */
  LE: { value: 8, label: '<=' },

  /** 不等于 */
  NE: { value: 9, label: '!=' },

  /** 左模糊匹配 */
  LIKE_LEFT: { value: 10, label: "LIKE '%s'" },

  /** 右模糊匹配 */
  LIKE_RIGHT: { value: 11, label: "LIKE 's%'" },
};

/**
 * 响应码枚举
 */
const ResultEnum = {
  SUCCESS: 200, // 成功

  ERROR: 500, // 服务器错误

  UNAUTHORIZED: 401, // 无权限

  FORBIDDEN: 403, // 无权限

  NOT_FOUND: 404, //验证码错误

  DATA_VALIDATE_EXCEPTION: 1001, // 数据验证错误

  BAD_PARAMETER: 1002, // 数据验证错误

  E_SYS_SYSTEM_NOT_INSTALL: 100005, // 系统未安装

  MULTI_LOGIN_FORBIDDEN: 200009, // 已在其他终端登录

  TOKEN_INVALID: 200011, //令牌无效

  TOKEN_EXPIRED: 200008, // 令牌过期

  TOKEN_DISABLED: 200009, // 令牌禁用

  REFRESH_EXPIRED: 200012, // 刷新令牌过期

  REFRESH_DISABLED: 200013, // 刷新令牌禁用
};

/**
 * 侧边栏状态枚举
 */
const SidebarStatusEnum = {
  OPENED: 'opened', // 展开

  CLOSED: 'closed', //
};

/**
 * 主题枚举
 */
const ThemeEnum = {
  LIGHT: 'light', // 明亮主题

  DARK: 'dark', // 暗黑主题

  AUTO: 'auto', // 系统自动
};

/**
 * 布局大小枚举
 */
const SizeEnum = {
  /**
   * 默认
   */
  DEFAULT: 'default',

  /**
   * 大型
   */
  LARGE: 'large',

  /**
   * 小型
   */
  SMALL: 'small',
};

/**
 * 布局大小枚举 medium / small / mini
 */
const VxeSizeEnum = {
  /**
   * 默认
   */
  DEFAULT: 'small',

  /**
   * 大型
   */
  LARGE: 'medium',

  /**
   * 小型
   */
  SMALL: 'mini',
};

const PermissionEnum = {
  /**
   * 全部数据权限
   */
  data_permission_options_ALL: 1,
  /**
   * 指定部门数据权限
   */
  data_permission_options_SPECIFIED_DEPT: 2,
  /**
   * 本部门及下级部门的数据权限
   */
  data_permission_options_SUB_DEPTS: 3,
  /**
   * 本部门数据权限
   */
  data_permission_options_CURRENT_DEPT: 4,
  /**
   * 本人数据权限
   */
  data_permission_options_OWN: 5,
};

const SwitchEnum = {
  /**
   * 开关
   */
  ON: 1,
  /**
   * 开关
   */
  OFF: 0,
};

const LogTypeEnum = {
  LOGIN: 1, // 登录日志
  OPERATION: 2, // 操作日志
  EXCEPTION: 3, // 异常日志
};

export {
  LanguageEnum,
  DeviceEnum,
  LayoutEnum,
  MenuTypeEnum,
  QueryTypeEnum,
  ResultEnum,
  SidebarStatusEnum,
  SizeEnum,
  ThemeEnum,
  VxeSizeEnum,
  PermissionEnum,
  SwitchEnum,
  LogTypeEnum,
};
